1. Field of the Invention
The present invention relates to the field of software application installation and more particularly to maintaining application dependencies in a system of base and stack applications.
2. Description of the Related Art
Though often overlooked, application installation is a prerequisite to interacting with a software application. Specifically, in most circumstances, an application can be properly executed only subsequent to the completion of a successful installation process. At the minimum, a typical software application installation requires a transfer of files to the file structure of a computing system, and the configuration of the computing system to particularly interact with the software application. Ordinarily, the configuration of the computing system includes the addition or modification of registry settings, the addition or modification of entries to one or more initialization files, or both.
Typically, software programs include as a component installer logic having program code enabled to substantially automate the installation process. In addition, computer operating systems occasionally incorporate installer logic for use in installing drivers or other software. Likewise, many commercial software offerings are provided with companion updater logic supporting self-updating operations. Generally, the updater logic can be included as a component of the software program itself, or the updater logic can be provided externally as a third-party tool.
The provision of an updating process is desirable because software programs are frequently modified by end users, for example by applying bug fixes or enhancements (such as new versions of the software). There are many different processes for installing and/or updating software programs. Some processes are entirely automated and substantially invisible to the user, while other processes are better characterized as interactive. Some processes are known to be complex while other processes are viewed to be simpler in nature. Of importance, the updating of a single application can be simple in nature, whereas the updating of an application upon which other applications depend can be complex in that subtle changes in the composition of the updated application can break the operation of those dependent applications.
In this regard, in a software system of multiple different installed applications, complex dependencies can exist between the applications. The installation of a service or maintenance update to a base application for which other software applications depend, hereinafter referred to as “stack applications”, can corrupt the stack applications and cause one or more of the stack applications to fail. Traditional installers only validate dependency prerequisite checking during an initial installation process. Thereafter, no further checking or action is taken to maintain dependencies even if service applied to the base application invalidates dependency relationships causing other stack applications to fail.